A storage system array typically includes one or more storage devices where information may be stored, and from where information may be obtained, as desired. The storage system array typically includes a storage operating system that functionally organizes the system by, inter alia, invoking storage operations in support of a storage service implemented by the storage system array. The storage system array may be implemented in accordance with a variety of storage architectures including, but not limited to, a network-attached storage environment, a storage area network and a storage device directly attached to a user or host computer.
Storage system arrays typically use a write cache for writing data at storage devices. The write cache is typically a volatile memory, for example, a dynamic random access memory (DRAM)). Storage system arrays also use battery power to copy data from the volatile memory, write cache to persistence storage, if there is disruption to the main power supply of the storage system array. The amount of available battery power is typically limited. This limits the amount of data one can move from the write cache to persistence storage before running out of battery power. Therefore, this limits the size of the write cache that can be used by storage system arrays because storage system arrays should be able to secure user data in case of a power failure. Continuous efforts are being made to increase the write cache size so that the storage system arrays can efficiently write client data, while providing assurance that in case of a power failure, data will be not be lost.